/**
 * CLASSE SistemaAdvocacia
 *
 * Esta classe contem o codigo principal do programa de gerenciamento do
 * escritorio de advocacia. Esta eh a classe que contem o metodo estatico "main",
 * e por isso eh a unica classe executavel do projeto. O arquivo contem 
 * varios comentarios, tentando explicar de forma detalhada o codigo.
 * Lembre-se que o codigo deste projeto esta seguindo a abordagem orientada
 * a objetos (apesar de nao implementar muitos conceitos que veremos adiante),
 * e por isso o codigo estah espalhado pelas classes.
 * 		Basicamente, voce vai encontrar aqui o codigo para exibicao do menu
 * principal e a chamada a cada subfuncao do sistema: gerenciamento de clientes,
 * gerenciamento de processos e geracao de relatorios.
 */

//-------------------------------------------------------------------
// I M P O R T A C A O   D E   C L A S S E S   D A   A P I   J A V A
//-------------------------------------------------------------------
 
import java.util.Scanner;

/**
 * Inicio da definicao da classe.
 */
public class SistemaAdvocacia {

	/**
	 * METODO menuPrincipal
	 *		Este metodo eh um metodo estatico responsavel por mostrar o menu principal
	 * de opcoes e por gerenciar a execucao de suas opcoes. Podemos dizer que o coracao
	 * do projeto estah aqui.
	 */
	public static void menuPrincipal() {
	
		Scanner entrada = new Scanner(System.in);
		
		// Esta variavel serah usada para controlar o loop abaixo, implementado usando uma estrutura "while". Quando
		// o usuario escolher a opcao "Sair do sistema", a variavel recebera o valor "true", que causara o termino
		// da repeticao.
		boolean sair = false;
		
		while(!sair) { // Enquanto o usuario nao escolher sair do programa...

			// Mostra as opcoes do menu principal para o usuario.
			System.out.println("\n--------------- MENU PRINCIPAL ---------------\n");
			System.out.println("  Lista de opcoes disponiveis:                ");
			System.out.println("      1 - Clientes                         ");
			System.out.println("      2 - Processos                           ");
			System.out.println("      3 - Relatorios                          ");
			System.out.println("      4 - Sair do sistema                     \n");

			// Solicita ao usuario que digite o numero da opcao escolhida.
			System.out.print  ("   >>> Digite sua opcao: ");
			int opcao = entrada.nextInt();
			
			// Este "while" repete a leitura da opcao escolhida pelo usuario ate que este informe uma opcao valida,
			// ou seja, um numero de 1 a 4.
			while(opcao < 1 || opcao > 4) {
				System.out.println("ERRO: Opcao invalida!");
				System.out.print  ("   >>> Digite sua opcao novamente: ");
				opcao = entrada.nextInt();
			}
			
			// Este "switch" esta sendo usado para a exibicao da tela selecionada pelo usuario no menu principal,
			// a partir do numero da opcao escolhida por ele.
			switch(opcao) {
				case 1 : // Opcao "Clientes". Exibe o menu do cadastro de clientes.
					TelaClientes tClientes = new TelaClientes();
					tClientes.menu();
					break;
					
				case 2 : // Opcao "Processos". Exibe as opcoes para processos de clientes.
					TelaProcessos tProcessos = new TelaProcessos();
					tProcessos.menu();
					break;
					
				case 3 : // Opcao "Relatorios". Exibe as opcoes para geracao de relatorios.
					TelaRelatorios tRelatorios = new TelaRelatorios();
					tRelatorios.menu();
					break;
					
				case 4 : // Opcao de "Sair do Sistema". Coloca "true" na variavel "sair" para que o "while" pare
						 // de repetir e o programa termine sua execucao.
					sair = true;
					
			} // fim do switch iniciado na linha 66
			
		} // fim do while iniciado na linha 42
		
	} // fim do metodo "menuPrincipal".

	/**
	 * METODO main
	 *		Contem o codigo principal do sistema. Eh por aqui que comeca a execucao do sistema.
	 */
	public static void main(String[] args) {
		System.out.println("---------------------------------------");
		System.out.println(" SISTEMA PARA ESCRITORIOS DE ADVOCACIA ");
		System.out.println("---------------------------------------");
		menuPrincipal();
		System.out.println("\nObrigado por utilizar o sistema!\n");
	}

}